-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[ENH]: garbage collector v2 orchestrator (supports forking) #4468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
c17c75a
to
19f703c
Compare
0c85b47
to
b989fec
Compare
0e2236f
to
c6812d0
Compare
b989fec
to
b793a23
Compare
c6812d0
to
650042e
Compare
b793a23
to
282d440
Compare
650042e
to
7394835
Compare
282d440
to
c0389ea
Compare
7394835
to
fc6e27b
Compare
c0389ea
to
8b8f1bf
Compare
4694a76
to
8b4d891
Compare
8b8f1bf
to
9853786
Compare
8b4d891
to
069241e
Compare
9853786
to
fc1cd49
Compare
069241e
to
e33a3c4
Compare
5c86e1c
to
2191cf0
Compare
98433a2
to
1d4c6d1
Compare
2191cf0
to
1451c71
Compare
self.dispatcher.clone() | ||
} | ||
|
||
async fn on_start(&mut self, ctx: &ComponentContext<Self>) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure what the right abstraction is - when do you override on_start()
v/s set initial_tasks()
and the default impl of on_start()
takes care of creating the tasks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to override on_start()
here because ConstructVersionGraphRequest
is not a task. I would be in favor of removing initial_tasks()
from the interface.
1d4c6d1
to
7d21e46
Compare
1451c71
to
53e1a29
Compare
Garbage Collector V2 Orchestrator with Fork Tree Support and Proptest-Based Validation This PR introduces a new, extensive, and modularized garbage collector orchestrator (garbage_collector_orchestrator_v2) in Rust that can handle collection version fork trees. Accompanied by a comprehensive property-based testing framework (proptest), the design validates correctness under a wide variety of complex version/fork scenarios. The orchestrator collaborates with modular operator components, and is currently only utilized by the test suite (not active production code), enabling rigorous validation before production rollout. Key Changes: Affected Areas: Potential Impact: Functionality: No production functionality is changed, as GC v2 is not yet wired in; introduces rigorous GC/retention logic for potential future use. Performance: No impact on runtime; test code is more thorough and possibly slower, but relegated to CI/testing. Security: No changes. Scalability: New test harness can validate GC correctness over arbitrarily large and complex version trees, improving confidence in future scalability. Review Focus: Testing Needed• Run the property-based tests ( Code Quality Assessmentrust/garbage_collector/tests/proptest_helpers/garbage_collector_under_test.rs: Complex but logically sound; follows proptest and state machine testing best practices. rust/garbage_collector/src/operators/delete_unused_files.rs: Interface clarified; parameter types improved; explicit about tenant and input types. rust/garbage_collector/tests/proptest_helpers/*: High-quality, readable proptest/test harness code. system/src/execution/orchestrator.rs: Default trait implementations clarified and made safer. rust/garbage_collector/src/garbage_collector_orchestrator_v2.rs: Well-structured, modular, focused on correctness/lint, clear error boundaries; documentation is robust. Best PracticesTest Coverage: Testing: Modularity: Documentation: Potential Issues• Large test-generated graphs may expose subtle, unanticipated invariants or performance bottlenecks in end-to-end testing. This summary was automatically generated by @propel-code-bot |
7d21e46
to
3cbfa34
Compare
53e1a29
to
8e08e2f
Compare
3cbfa34
to
7d4d78b
Compare
8e08e2f
to
de511ea
Compare
7d4d78b
to
dbab3d2
Compare
de511ea
to
c73fd49
Compare
68b21f3
to
8f416dd
Compare
c73fd49
to
3a3adda
Compare
3a3adda
to
7969af3
Compare
8f416dd
to
038dae8
Compare
7969af3
to
2ce9ae0
Compare
Merge activity
|
Description of changes
Adds a new garbage collector orchestrator that supports GC'ing fork trees. The new orchestrator is extensively tested with a proptest. It is not currently used outside of tests.